package com.chushouya.product.service.admin;

import com.general.framework.core.schema.PageResult;
import com.chushouya.product.dto.admin.tempevaluate.TempEvaluateDetailDTO;
import com.chushouya.product.dto.admin.tempevaluate.TempEvaluateListDTO;
import com.chushouya.product.dto.admin.tempevaluate.TempEvaluateQuery;
import com.chushouya.product.dto.admin.tempevaluate.TempEvaluateSaveDTO;
import com.chushouya.product.dto.admin.tempevaluate.TempEvaluateUpdateDTO;

import java.util.List;

/**
 * 模板估价业务
 */
public interface TempEvaluateService {

    /**
     * 分页查询模板估价
     * @param query 参数
     * @return 分页对象
     */
    PageResult<TempEvaluateListDTO> selectTempEvaluatePageResult(TempEvaluateQuery query);

    /**
     * 查询模板估价列表
     * @param query 参数
     * @return 列表
     */
    List<TempEvaluateListDTO> selectTempEvaluateList(TempEvaluateQuery query);

    /**
     * 根据ID查询模板估价
     * @param tempId 模板ID
     * @return 模板估价详情
     */
    TempEvaluateDetailDTO getTempEvaluateDetail(Long tempId);

    /**
     * 新增模板估价
     * @param tempEvaluate 模板估价
     * @return ID
     */
    Long addTempEvaluate(TempEvaluateSaveDTO tempEvaluate);

    /**
     * 修改模板估价
     * @param tempEvaluate 模板估价
     * @return ID
     */
    Long editTempEvaluate(TempEvaluateUpdateDTO tempEvaluate);

    /**
     * 删除模板估价
     * @param tempId 模板ID
     */
    void removeTempEvaluate(Long tempId);

    /**
     * 根据分类ID查询模板估价列表
     * @param categoryId 分类ID
     * @return 列表
     */
    List<TempEvaluateListDTO> selectTempEvaluateListByCategoryId(Long categoryId);
}
